Facile, mais ne le dites à personne…

A la question :

transformer du wkt en shp dans une appli en vb pour arcview3.2

Voilà la réponse …secrète !

Le « secret » pour transformer du WKT en entités (dans notre cas en objets ESRI.MapObjects) passe par les expressions régulières disponibles avec la référence « Microsoft VBScript Regular Expression
5.5 » (« C:WINDOWSsystem32vbscript.dll ») normalement présente surwindows XP.

Public Const CoordPattern =
« (([0-9]+.[0-9]*)|([0-9]*.[0-9]+)|([0-9]+)) »
Public Const PointPattern = « ( » & CoordPattern & « ( + » &
CoordPattern & « ){1,2}) »

‘———
‘ Methode     :      GetPoints
‘ Entrée      :      Une chaine WKT de Points
‘ Sortie      :      Une MatchCollection de points de type string
‘ Description :      Extrait les points d’une chaine. Les points
peuvent
‘                    être de type 2D ou 3D et les coordonnées sont
séparés
‘                    par des espaces.
‘                    Un Point 3D pourrait avoir cette forme : (10.0 15
0)
‘
Private Function GetPoints(ByVal Str As String) As MatchCollection
Dim Matches As MatchCollection
Dim Reg As New RegExp
Reg.Global = True

Reg.Pattern = PointPattern
Set Matches = Reg.Execute(Str)
Set GetPoints= Matches

‘– On affiche les points
Dim Mtch As Match
For Each Mtch In Matches
Debug.Print « Point = » & Mtch.Value
Next
End Function

A partir de cette collection de points il est facile de « reconstruire » une collection de Points MapObject, donc des lignes et des polygones.